package com.itheima.d8_generics_method;

import java.util.ArrayList;

public class Test2 {
    public static void main(String[] args) {
        // 需求：所有的汽车可以一起参加比赛。
        ArrayList<Car> list1 = new ArrayList<>();
        ArrayList<BENCHI> list2 = new ArrayList<>();
        ArrayList<BAOMA> list3 = new ArrayList<>();
        ArrayList<BYD> list4 = new ArrayList<>();
        ArrayList<Han> list5 = new ArrayList<>();

        match(list1);
        match(list2);
        match(list3);
        match(list4);
        match(list5);
        System.out.println("--------------");
//        match2(list1); //报错
//        match2(list2); //报错
//        match2(list3); //报错
        match2(list4);
        match2(list5);
        System.out.println("--------------");
        match3(list1);
//        match3(list2);  //报错
//        match3(list3);  //报错
        match3(list4);
//        match3(list5);  //报错
    }

    //? 通配符，通配任意类型
    public static void match(ArrayList<?> cars) {

    }

    //只能是BYD及其子类类型
    public static void match2(ArrayList<? extends BYD> cars) {

    }

    //只能是BYD及其父类类型
    public static void match3(ArrayList<? super BYD> cars) {

    }
}

class Car{

}
class BENCHI extends Car{

}
class BAOMA extends Car{

}
class BYD extends Car{

}

class Han extends BYD{

}
